diff --git a/system/core/Output.php b/system/core/Output.php
index d494d00..7a35b02 100644
--- a/system/core/Output.php
+++ b/system/core/Output.php
@@ -639,7 +639,7 @@
 		$uri =	$CFG->item('base_url').$CFG->item('index_page').$URI->uri_string;
 		$filepath = $cache_path.md5($uri);
 
-		if ( ! @file_exists($filepath) OR ! $fp = @fopen($filepath, FOPEN_READ))
+		if ( ! file_exists($filepath) OR ! $fp = @fopen($filepath, FOPEN_READ))
 		{
 			return FALSE;
 		}
diff --git a/system/database/DB_cache.php b/system/database/DB_cache.php
index 0ef0ae5..0ab9c5d 100644
--- a/system/database/DB_cache.php
+++ b/system/database/DB_cache.php
@@ -156,7 +156,7 @@
 		$dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/';
 		$filename = md5($sql);
 
-		if ( ! @is_dir($dir_path))
+		if ( ! is_dir($dir_path))
 		{
 			if ( ! @mkdir($dir_path, DIR_WRITE_MODE))
 			{
diff --git a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php
index b43e323..7758a85 100644
--- a/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php
+++ b/system/database/drivers/pdo/subdrivers/pdo_sqlite_forge.php
@@ -107,7 +107,7 @@
 	public function drop_database($db_name = '')
 	{
 		// In SQLite, a database is dropped when we delete a file
-		if (@file_exists($this->db->database))
+		if (file_exists($this->db->database))
 		{
 			// We need to close the pseudo-connection first
 			$this->db->close();
diff --git a/system/database/drivers/sqlite/sqlite_forge.php b/system/database/drivers/sqlite/sqlite_forge.php
index f80b5e7..5a28c2b 100644
--- a/system/database/drivers/sqlite/sqlite_forge.php
+++ b/system/database/drivers/sqlite/sqlite_forge.php
@@ -81,7 +81,7 @@
 	 */
 	public function drop_database($db_name = '')
 	{
-		if ( ! @file_exists($this->db->database) OR ! @unlink($this->db->database))
+		if ( ! file_exists($this->db->database) OR ! @unlink($this->db->database))
 		{
 			return ($this->db->db_debug) ? $this->db->display_error('db_unable_to_drop') : FALSE;
 		}
diff --git a/system/database/drivers/sqlite3/sqlite3_forge.php b/system/database/drivers/sqlite3/sqlite3_forge.php
index 0eed059..d79d15a 100644
--- a/system/database/drivers/sqlite3/sqlite3_forge.php
+++ b/system/database/drivers/sqlite3/sqlite3_forge.php
@@ -93,7 +93,7 @@
 	public function drop_database($db_name = '')
 	{
 		// In SQLite, a database is dropped when we delete a file
-		if (@file_exists($this->db->database))
+		if (file_exists($this->db->database))
 		{
 			// We need to close the pseudo-connection first
 			$this->db->close();
diff --git a/system/helpers/captcha_helper.php b/system/helpers/captcha_helper.php
index 1392677..78eac4b 100644
--- a/system/helpers/captcha_helper.php
+++ b/system/helpers/captcha_helper.php
@@ -82,7 +82,7 @@
 		}
 
 		if ($img_path === '' OR $img_url === ''
-			OR ! @is_dir($img_path) OR ! is_really_writable($img_path)
+			OR ! is_dir($img_path) OR ! is_really_writable($img_path)
 			OR ! extension_loaded('gd'))
 		{
 			return FALSE;
diff --git a/system/helpers/directory_helper.php b/system/helpers/directory_helper.php
index 84ad358..0bbe7fe 100644
--- a/system/helpers/directory_helper.php
+++ b/system/helpers/directory_helper.php
@@ -69,9 +69,9 @@
 					continue;
 				}
 
-				@is_dir($source_dir.$file) && $file .= DIRECTORY_SEPARATOR;
+				is_dir($source_dir.$file) && $file .= DIRECTORY_SEPARATOR;
 
-				if (($directory_depth < 1 OR $new_depth > 0) && @is_dir($source_dir.$file))
+				if (($directory_depth < 1 OR $new_depth > 0) && is_dir($source_dir.$file))
 				{
 					$filedata[$file] = directory_map($source_dir.$file, $new_depth, $hidden);
 				}
diff --git a/system/libraries/Ftp.php b/system/libraries/Ftp.php
index fc02f83..8401a38 100644
--- a/system/libraries/Ftp.php
+++ b/system/libraries/Ftp.php
@@ -147,6 +147,7 @@
 			{
 				$this->_error('ftp_unable_to_connect');
 			}
+
 			return FALSE;
 		}
 
@@ -156,6 +157,7 @@
 			{
 				$this->_error('ftp_unable_to_login');
 			}
+
 			return FALSE;
 		}
 
@@ -572,7 +574,7 @@
 			// Recursively read the local directory
 			while (FALSE !== ($file = readdir($fp)))
 			{
-				if (@is_dir($locpath.$file) && $file[0] !== '.')
+				if (is_dir($locpath.$file) && $file[0] !== '.')
 				{
 					$this->mirror($locpath.$file.'/', $rempath.$file.'/');
 				}
diff --git a/system/libraries/Upload.php b/system/libraries/Upload.php
index 62cfb28..75fc062 100644
--- a/system/libraries/Upload.php
+++ b/system/libraries/Upload.php
@@ -972,7 +972,7 @@
 			$this->upload_path = str_replace('\\', '/', realpath($this->upload_path));
 		}
 
-		if ( ! @is_dir($this->upload_path))
+		if ( ! is_dir($this->upload_path))
 		{
 			$this->set_error('upload_no_filepath');
 			return FALSE;
diff --git a/system/libraries/Zip.php b/system/libraries/Zip.php
index 40b661a..43abfba 100644
--- a/system/libraries/Zip.php
+++ b/system/libraries/Zip.php
@@ -133,12 +133,12 @@
 	protected function _get_mod_time($dir)
 	{
 		// filemtime() may return false, but raises an error for non-existing files
-		$date = file_exists($dir) ? @filemtime($dir) : getdate($this->now);
+		$date = file_exists($dir) ? filemtime($dir) : getdate($this->now);
 
 		return array(
-				'file_mtime' => ($date['hours'] << 11) + ($date['minutes'] << 5) + $date['seconds'] / 2,
-				'file_mdate' => (($date['year'] - 1980) << 9) + ($date['mon'] << 5) + $date['mday']
-			);
+			'file_mtime' => ($date['hours'] << 11) + ($date['minutes'] << 5) + $date['seconds'] / 2,
+			'file_mdate' => (($date['year'] - 1980) << 9) + ($date['mon'] << 5) + $date['mday']
+		);
 	}
 
 	// --------------------------------------------------------------------
@@ -342,7 +342,7 @@
 				continue;
 			}
 
-			if (@is_dir($path.$file))
+			if (is_dir($path.$file))
 			{
 				$this->read_dir($path.$file.DIRECTORY_SEPARATOR, $preserve_filepath, $root_path);
 			}
@@ -353,6 +353,7 @@
 				{
 					$name = str_replace($root_path, '', $name);
 				}
+
 				$this->add_data($name.$file, $data);
 			}
 		}
